package com.lecode;

/**
 * Created by Administrator on 2020/8/6.
 * 力扣
 * 面试系列
 */
public class mianshi {

    /**
     * 判定字符是否唯一
     * @param astr
     * @return
     */
    public boolean isUnique(String astr) {
        if (astr == null || astr.length() == 1){
            return true;
        }
        for (int i = 0; i < astr.length(); i++){
            if (astr.indexOf(astr.charAt(i)) != astr.lastIndexOf(astr.charAt(i))){
                return false;
            }
        }
        return true;
    }

    /**
     * 面试题 01.02. 判定是否互为字符重排
     * 请编写一个程序，确定其中一个字符串的字符重新排列后，能否变成另一个字符串。
     * @param s1
     * @param s2
     * @return
     */
    public boolean CheckPermutation(String s1, String s2) {
        if (s1.length() != s2.length()) return false;
        boolean[] useFlag = new boolean[s1.length()];
        for (int i = 0; i < s2.length(); i++){
            for (int j = 0; j < s1.length(); j++){
                if (s2.charAt(i) == s1.charAt(j) &&! useFlag[j]){
                    useFlag[j] = true;
                    break;
                }
            }
        }
        for (boolean falg: useFlag){
            if (!falg) return falg;
        }
        return true;
    }
}
